package pubmeddown;

import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.db.Db;
import cn.hutool.db.Entity;
import cn.hutool.db.ds.DSFactory;
import lombok.SneakyThrows;

import java.io.File;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

/**
 * @Author: 葛成瑞
 * @Date: 2025/7/30 10:28
 */
public class InsCnki {
    @SneakyThrows
    public static void main(String[] args) {
        Db use = Db.use(DSFactory.get("dtm"));

        use.execute("truncate table cnki_detail");

        int artsize = 0;

        File[] ls = FileUtil.ls("F:\\qfworkspace\\idea\\temp_project\\src\\main\\java\\pubmeddown\\cnki");
        List<List<String>> Allarticles = new ArrayList<>();
        for (File l : ls) {
            System.out.println("开始读取+"+l.getName());
            List<String> strings = FileUtil.readUtf8Lines(l);
            List<String> articles = new ArrayList<>();
            //%0 Journal Article 开始位置
            // %W CNKI 结束位置 进行截取数据
            for (String s : strings) {
                if (s.equals("%W CNKI")) {
                    artsize++;
                }
                if (!s.equals("%W CNKI")) {
                    articles.add(s);
                }else {
                    Allarticles.add(articles);
                    articles = new ArrayList<>();
                }
            }
            System.out.println("文件结束");
        }
        System.out.println("allarticles:"+Allarticles.size());
        System.out.println("artsize:"+artsize);

//        System.out.println(Allarticles);
        for (List<String> allarticle : Allarticles) {
            Entity ins = new Entity();
            ins.setTableName("cnki_detail");
            // %A 孙晓燕
            //%+ 山西工商学院图书馆;
            //%T 新环境下图书馆资源的开发与利用——《大学图书馆资源开发与应用研究》荐读
            //%J 情报理论与实践
            //%D 2023
            //%V 46
            //%N 08
            //%K 图书馆资源;新环境下;《大学图书馆资源开发与应用研究》;开发与应用;开发与利用;
            //%X <正>书名：大学图书馆资源开发与应用研究作者：高华英，刘宝昌出版社：吉林出版集团股份有限公司ISBN:9787558188428出版时间：2021年3月定价：60元随着互联网大数据和各种移动终端设备技术的发展普及，人类已经进入阅读2.0时代，从以往单纯的纸质图书阅读迈入电子化、数字化阅读与纸质图书阅读共存的阶段。借助手机、电脑、阅读器等移动终端设备，人们可以从互联网上便捷地找到大部分已经出版的电子图书资源，
            //%P 207
            //%@ 1000-7490
            //%L 11-1762/G3

            StringBuffer au = new StringBuffer();
            for (String string : allarticle) {
                if (string.contains("%A")) {
                    au.append(string.split("%A")[1].trim()+";");
                }
                if (string.contains("%+")) {
                    ins.set("unit",string.split("%\\+")[1].trim());
                }
                if (string.contains("%T")) {
                    ins.set("title",string.split("%T")[1].trim());
                }
                if (string.contains("%J")) {
                    ins.set("jour",string.split("%J")[1].trim());
                }
                if (string.contains("%D")) {
                    ins.set("year",string.split("%D")[1].trim());
                }
                if (string.contains("%V")) {
                    ins.set("vol",string.split("%V")[1].trim());
                }
                if (string.contains("%N")) {
                    ins.set("issue",string.split("%N")[1].trim());
                }
                if (string.contains("%K")) {
                    ins.set("kew",string.split("%K")[1].trim());
                }
                if (string.contains("%X")) {
                    ins.set("ab",string.split("%X")[1].trim());
                }
                if (string.contains("%P")) {
                    ins.set("page",string.split("%P")[1].trim());
                }
                if (string.contains("%@")) {
                    ins.set("issn",string.split("%@")[1].trim());
                }
            }
            ins.set("au",au.toString());
            use.insert(ins);


        }

    }
}
